<?php


/**
 * @param $var
 */
function p($var){
    echo "<pre style='padding: 10px;background-color: #f5f5f5;'>";
    print_r($var);
    echo "</pre>";
}

/**
 * @param null $key
 * @param null $value
 * @return array|bool|void|null
 */
function C($key=NULL,$value=NULL){
    static $config = [];
    //加载配置项
    if(is_array($key)){
        $config = array_merge($config, array_change_key_case($key,CASE_UPPER));
        return;
    }
    //读取配置项
    if(is_string($key)){
        $key=strtoupper($key);
        //两个参数传递
        if(!is_null($value)){
            $config[$key] = $value;
            return;
        }
        return $config[$key] ?? NULL;
    }

    if(is_null($key)  and is_null($value)){
        return $config;
    }
}

/**
 * @param $table
 * @return Model
 */
function M($table){
    return new Model($table);
}


/** 缓存方法
 * @param string|null $name
 * @param null $value
 * @param int $express_time
 * @return false|mixed
 */
function  S(string $name=null ,  $value=null , int $express_time=3600){
    if(is_null($name)) return false;
    $file_name = md5($name);
    $patch = RUNTIME_PATH . '/'.$file_name.'.php';
    if(is_null($value)){
        //缓存文件一过期
        if(!is_file($patch)){
            return false;
        }
        $data = include $patch;
        //缓存文件过期，删除缓存
        if($data["time"] <= time()){
            unlink($patch);
        }else{
            return $data[$name];
        }
    }else{
        //写缓存
        $data=[
            $name=>$value ,
            "time" => time()+$express_time
        ];
        $set_data = var_export( $data  , true);
        file_put_contents($patch , "<?php \r\n return " .$set_data . " ?>");
    }
}